package com.bkgy.modularbx.coil_track_stats.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 镀锌1870分卷全流程统计表
 * @TableName T_COIL_TRACKING_STATS_1870
 */
@TableName(value ="T_COIL_TRACKING_STATS_1870")
public class TrackingStats1870 {
    /**
     * 自增主键
     */
    @TableId(type = IdType.AUTO)
    private Integer indocno;

    /**
     * 统计日期(YYYY-MM-DD)
     */
    private String tocDate;

    /**
     * 合格卷总重量(吨)
     */
    private BigDecimal weight;

    /**
     * 全部卷总重量(吨)
     */
    private BigDecimal totalWeight;

    /**
     * 重量合格率(%)
     */
    private BigDecimal weightRate;

    /**
     * 合格卷数量
     */
    private Integer count;

    /**
     * 全部卷数量
     */
    private Integer totalCount;

    /**
     * 数量合格率(%)
     */
    private BigDecimal countRate;

    /**
     * 异常卷损失重量(吨)
     */
    private BigDecimal lossWeight;

    /**
     * 全部损失重量(吨)
     */
    private BigDecimal totalLossWeight;

    /**
     * 记录创建时间
     */
    private Date createdTime;

    /**
     * 记录更新时间
     */
    private Date updatedTime;

    /**
     * 连退1870缺陷总条数（LOSS>0）
     */
    private Integer defectCnt;

    /**
     * 连退1870重量原因缺陷条数（含重量不足/重量超差/重量原因，或LOSS>0且原因为空/空串）
     */
    private Integer defectWeightCnt;

    /**
     * 连退1870重量原因损失重量(吨)
     */
    private BigDecimal defectWeightLoss;

    /**
     * 连退1870成材率原因缺陷条数（原因=成材率原因）
     */
    private Integer defectYieldCnt;

    /**
     * 连退1870成材率原因损失重量(吨)
     */
    private BigDecimal defectYieldLoss;

    /**
     * 连退1870质量原因缺陷条数（原因=质量原因）
     */
    private Integer defectQualityCnt;

    /**
     * 连退1870质量原因损失重量(吨)
     */
    private BigDecimal defectQualityLoss;

    /**
     * 连退1870重量原因缺陷条数占比(%)=重量原因条数/缺陷总条数*100
     */
    private BigDecimal defectWeightCntRate;

    /**
     * 连退1870成材率原因缺陷条数占比(%)=成材率原因条数/缺陷总条数*100
     */
    private BigDecimal defectYieldCntRate;

    /**
     * 连退1870质量原因缺陷条数占比(%)=质量原因条数/缺陷总条数*100
     */
    private BigDecimal defectQualityCntRate;

    /**
     * 连退1870重量原因损失重量占比(%)=重量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    private BigDecimal defectWeightLossRate;

    /**
     * 连退1870成材率原因损失重量占比(%)=成材率原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    private BigDecimal defectYieldLossRate;

    /**
     * 连退1870质量原因损失重量占比(%)=质量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    private BigDecimal defectQualityLossRate;

    /**
     * 自增主键
     */
    public Integer getIndocno() {
        return indocno;
    }

    /**
     * 自增主键
     */
    public void setIndocno(Integer indocno) {
        this.indocno = indocno;
    }

    /**
     * 统计日期(YYYY-MM-DD)
     */
    public String getTocDate() {
        return tocDate;
    }

    /**
     * 统计日期(YYYY-MM-DD)
     */
    public void setTocDate(String tocDate) {
        this.tocDate = tocDate;
    }

    /**
     * 合格卷总重量(吨)
     */
    public BigDecimal getWeight() {
        return weight;
    }

    /**
     * 合格卷总重量(吨)
     */
    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    /**
     * 全部卷总重量(吨)
     */
    public BigDecimal getTotalWeight() {
        return totalWeight;
    }

    /**
     * 全部卷总重量(吨)
     */
    public void setTotalWeight(BigDecimal totalWeight) {
        this.totalWeight = totalWeight;
    }

    /**
     * 重量合格率(%)
     */
    public BigDecimal getWeightRate() {
        return weightRate;
    }

    /**
     * 重量合格率(%)
     */
    public void setWeightRate(BigDecimal weightRate) {
        this.weightRate = weightRate;
    }

    /**
     * 合格卷数量
     */
    public Integer getCount() {
        return count;
    }

    /**
     * 合格卷数量
     */
    public void setCount(Integer count) {
        this.count = count;
    }

    /**
     * 全部卷数量
     */
    public Integer getTotalCount() {
        return totalCount;
    }

    /**
     * 全部卷数量
     */
    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    /**
     * 数量合格率(%)
     */
    public BigDecimal getCountRate() {
        return countRate;
    }

    /**
     * 数量合格率(%)
     */
    public void setCountRate(BigDecimal countRate) {
        this.countRate = countRate;
    }

    /**
     * 异常卷损失重量(吨)
     */
    public BigDecimal getLossWeight() {
        return lossWeight;
    }

    /**
     * 异常卷损失重量(吨)
     */
    public void setLossWeight(BigDecimal lossWeight) {
        this.lossWeight = lossWeight;
    }

    /**
     * 全部损失重量(吨)
     */
    public BigDecimal getTotalLossWeight() {
        return totalLossWeight;
    }

    /**
     * 全部损失重量(吨)
     */
    public void setTotalLossWeight(BigDecimal totalLossWeight) {
        this.totalLossWeight = totalLossWeight;
    }

    /**
     * 记录创建时间
     */
    public Date getCreatedTime() {
        return createdTime;
    }

    /**
     * 记录创建时间
     */
    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    /**
     * 记录更新时间
     */
    public Date getUpdatedTime() {
        return updatedTime;
    }

    /**
     * 记录更新时间
     */
    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    /**
     * 连退1870缺陷总条数（LOSS>0）
     */
    public Integer getDefectCnt() {
        return defectCnt;
    }

    /**
     * 连退1870缺陷总条数（LOSS>0）
     */
    public void setDefectCnt(Integer defectCnt) {
        this.defectCnt = defectCnt;
    }

    /**
     * 连退1870重量原因缺陷条数（含重量不足/重量超差/重量原因，或LOSS>0且原因为空/空串）
     */
    public Integer getDefectWeightCnt() {
        return defectWeightCnt;
    }

    /**
     * 连退1870重量原因缺陷条数（含重量不足/重量超差/重量原因，或LOSS>0且原因为空/空串）
     */
    public void setDefectWeightCnt(Integer defectWeightCnt) {
        this.defectWeightCnt = defectWeightCnt;
    }

    /**
     * 连退1870重量原因损失重量(吨)
     */
    public BigDecimal getDefectWeightLoss() {
        return defectWeightLoss;
    }

    /**
     * 连退1870重量原因损失重量(吨)
     */
    public void setDefectWeightLoss(BigDecimal defectWeightLoss) {
        this.defectWeightLoss = defectWeightLoss;
    }

    /**
     * 连退1870成材率原因缺陷条数（原因=成材率原因）
     */
    public Integer getDefectYieldCnt() {
        return defectYieldCnt;
    }

    /**
     * 连退1870成材率原因缺陷条数（原因=成材率原因）
     */
    public void setDefectYieldCnt(Integer defectYieldCnt) {
        this.defectYieldCnt = defectYieldCnt;
    }

    /**
     * 连退1870成材率原因损失重量(吨)
     */
    public BigDecimal getDefectYieldLoss() {
        return defectYieldLoss;
    }

    /**
     * 连退1870成材率原因损失重量(吨)
     */
    public void setDefectYieldLoss(BigDecimal defectYieldLoss) {
        this.defectYieldLoss = defectYieldLoss;
    }

    /**
     * 连退1870质量原因缺陷条数（原因=质量原因）
     */
    public Integer getDefectQualityCnt() {
        return defectQualityCnt;
    }

    /**
     * 连退1870质量原因缺陷条数（原因=质量原因）
     */
    public void setDefectQualityCnt(Integer defectQualityCnt) {
        this.defectQualityCnt = defectQualityCnt;
    }

    /**
     * 连退1870质量原因损失重量(吨)
     */
    public BigDecimal getDefectQualityLoss() {
        return defectQualityLoss;
    }

    /**
     * 连退1870质量原因损失重量(吨)
     */
    public void setDefectQualityLoss(BigDecimal defectQualityLoss) {
        this.defectQualityLoss = defectQualityLoss;
    }

    /**
     * 连退1870重量原因缺陷条数占比(%)=重量原因条数/缺陷总条数*100
     */
    public BigDecimal getDefectWeightCntRate() {
        return defectWeightCntRate;
    }

    /**
     * 连退1870重量原因缺陷条数占比(%)=重量原因条数/缺陷总条数*100
     */
    public void setDefectWeightCntRate(BigDecimal defectWeightCntRate) {
        this.defectWeightCntRate = defectWeightCntRate;
    }

    /**
     * 连退1870成材率原因缺陷条数占比(%)=成材率原因条数/缺陷总条数*100
     */
    public BigDecimal getDefectYieldCntRate() {
        return defectYieldCntRate;
    }

    /**
     * 连退1870成材率原因缺陷条数占比(%)=成材率原因条数/缺陷总条数*100
     */
    public void setDefectYieldCntRate(BigDecimal defectYieldCntRate) {
        this.defectYieldCntRate = defectYieldCntRate;
    }

    /**
     * 连退1870质量原因缺陷条数占比(%)=质量原因条数/缺陷总条数*100
     */
    public BigDecimal getDefectQualityCntRate() {
        return defectQualityCntRate;
    }

    /**
     * 连退1870质量原因缺陷条数占比(%)=质量原因条数/缺陷总条数*100
     */
    public void setDefectQualityCntRate(BigDecimal defectQualityCntRate) {
        this.defectQualityCntRate = defectQualityCntRate;
    }

    /**
     * 连退1870重量原因损失重量占比(%)=重量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public BigDecimal getDefectWeightLossRate() {
        return defectWeightLossRate;
    }

    /**
     * 连退1870重量原因损失重量占比(%)=重量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public void setDefectWeightLossRate(BigDecimal defectWeightLossRate) {
        this.defectWeightLossRate = defectWeightLossRate;
    }

    /**
     * 连退1870成材率原因损失重量占比(%)=成材率原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public BigDecimal getDefectYieldLossRate() {
        return defectYieldLossRate;
    }

    /**
     * 连退1870成材率原因损失重量占比(%)=成材率原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public void setDefectYieldLossRate(BigDecimal defectYieldLossRate) {
        this.defectYieldLossRate = defectYieldLossRate;
    }

    /**
     * 连退1870质量原因损失重量占比(%)=质量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public BigDecimal getDefectQualityLossRate() {
        return defectQualityLossRate;
    }

    /**
     * 连退1870质量原因损失重量占比(%)=质量原因损失/缺陷总损失(LOSS_WEIGHT)*100
     */
    public void setDefectQualityLossRate(BigDecimal defectQualityLossRate) {
        this.defectQualityLossRate = defectQualityLossRate;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        TrackingStats1870 other = (TrackingStats1870) that;
        return (this.getIndocno() == null ? other.getIndocno() == null : this.getIndocno().equals(other.getIndocno()))
            && (this.getTocDate() == null ? other.getTocDate() == null : this.getTocDate().equals(other.getTocDate()))
            && (this.getWeight() == null ? other.getWeight() == null : this.getWeight().equals(other.getWeight()))
            && (this.getTotalWeight() == null ? other.getTotalWeight() == null : this.getTotalWeight().equals(other.getTotalWeight()))
            && (this.getWeightRate() == null ? other.getWeightRate() == null : this.getWeightRate().equals(other.getWeightRate()))
            && (this.getCount() == null ? other.getCount() == null : this.getCount().equals(other.getCount()))
            && (this.getTotalCount() == null ? other.getTotalCount() == null : this.getTotalCount().equals(other.getTotalCount()))
            && (this.getCountRate() == null ? other.getCountRate() == null : this.getCountRate().equals(other.getCountRate()))
            && (this.getLossWeight() == null ? other.getLossWeight() == null : this.getLossWeight().equals(other.getLossWeight()))
            && (this.getTotalLossWeight() == null ? other.getTotalLossWeight() == null : this.getTotalLossWeight().equals(other.getTotalLossWeight()))
            && (this.getCreatedTime() == null ? other.getCreatedTime() == null : this.getCreatedTime().equals(other.getCreatedTime()))
            && (this.getUpdatedTime() == null ? other.getUpdatedTime() == null : this.getUpdatedTime().equals(other.getUpdatedTime()))
            && (this.getDefectCnt() == null ? other.getDefectCnt() == null : this.getDefectCnt().equals(other.getDefectCnt()))
            && (this.getDefectWeightCnt() == null ? other.getDefectWeightCnt() == null : this.getDefectWeightCnt().equals(other.getDefectWeightCnt()))
            && (this.getDefectWeightLoss() == null ? other.getDefectWeightLoss() == null : this.getDefectWeightLoss().equals(other.getDefectWeightLoss()))
            && (this.getDefectYieldCnt() == null ? other.getDefectYieldCnt() == null : this.getDefectYieldCnt().equals(other.getDefectYieldCnt()))
            && (this.getDefectYieldLoss() == null ? other.getDefectYieldLoss() == null : this.getDefectYieldLoss().equals(other.getDefectYieldLoss()))
            && (this.getDefectQualityCnt() == null ? other.getDefectQualityCnt() == null : this.getDefectQualityCnt().equals(other.getDefectQualityCnt()))
            && (this.getDefectQualityLoss() == null ? other.getDefectQualityLoss() == null : this.getDefectQualityLoss().equals(other.getDefectQualityLoss()))
            && (this.getDefectWeightCntRate() == null ? other.getDefectWeightCntRate() == null : this.getDefectWeightCntRate().equals(other.getDefectWeightCntRate()))
            && (this.getDefectYieldCntRate() == null ? other.getDefectYieldCntRate() == null : this.getDefectYieldCntRate().equals(other.getDefectYieldCntRate()))
            && (this.getDefectQualityCntRate() == null ? other.getDefectQualityCntRate() == null : this.getDefectQualityCntRate().equals(other.getDefectQualityCntRate()))
            && (this.getDefectWeightLossRate() == null ? other.getDefectWeightLossRate() == null : this.getDefectWeightLossRate().equals(other.getDefectWeightLossRate()))
            && (this.getDefectYieldLossRate() == null ? other.getDefectYieldLossRate() == null : this.getDefectYieldLossRate().equals(other.getDefectYieldLossRate()))
            && (this.getDefectQualityLossRate() == null ? other.getDefectQualityLossRate() == null : this.getDefectQualityLossRate().equals(other.getDefectQualityLossRate()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getIndocno() == null) ? 0 : getIndocno().hashCode());
        result = prime * result + ((getTocDate() == null) ? 0 : getTocDate().hashCode());
        result = prime * result + ((getWeight() == null) ? 0 : getWeight().hashCode());
        result = prime * result + ((getTotalWeight() == null) ? 0 : getTotalWeight().hashCode());
        result = prime * result + ((getWeightRate() == null) ? 0 : getWeightRate().hashCode());
        result = prime * result + ((getCount() == null) ? 0 : getCount().hashCode());
        result = prime * result + ((getTotalCount() == null) ? 0 : getTotalCount().hashCode());
        result = prime * result + ((getCountRate() == null) ? 0 : getCountRate().hashCode());
        result = prime * result + ((getLossWeight() == null) ? 0 : getLossWeight().hashCode());
        result = prime * result + ((getTotalLossWeight() == null) ? 0 : getTotalLossWeight().hashCode());
        result = prime * result + ((getCreatedTime() == null) ? 0 : getCreatedTime().hashCode());
        result = prime * result + ((getUpdatedTime() == null) ? 0 : getUpdatedTime().hashCode());
        result = prime * result + ((getDefectCnt() == null) ? 0 : getDefectCnt().hashCode());
        result = prime * result + ((getDefectWeightCnt() == null) ? 0 : getDefectWeightCnt().hashCode());
        result = prime * result + ((getDefectWeightLoss() == null) ? 0 : getDefectWeightLoss().hashCode());
        result = prime * result + ((getDefectYieldCnt() == null) ? 0 : getDefectYieldCnt().hashCode());
        result = prime * result + ((getDefectYieldLoss() == null) ? 0 : getDefectYieldLoss().hashCode());
        result = prime * result + ((getDefectQualityCnt() == null) ? 0 : getDefectQualityCnt().hashCode());
        result = prime * result + ((getDefectQualityLoss() == null) ? 0 : getDefectQualityLoss().hashCode());
        result = prime * result + ((getDefectWeightCntRate() == null) ? 0 : getDefectWeightCntRate().hashCode());
        result = prime * result + ((getDefectYieldCntRate() == null) ? 0 : getDefectYieldCntRate().hashCode());
        result = prime * result + ((getDefectQualityCntRate() == null) ? 0 : getDefectQualityCntRate().hashCode());
        result = prime * result + ((getDefectWeightLossRate() == null) ? 0 : getDefectWeightLossRate().hashCode());
        result = prime * result + ((getDefectYieldLossRate() == null) ? 0 : getDefectYieldLossRate().hashCode());
        result = prime * result + ((getDefectQualityLossRate() == null) ? 0 : getDefectQualityLossRate().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", indocno=").append(indocno);
        sb.append(", tocDate=").append(tocDate);
        sb.append(", weight=").append(weight);
        sb.append(", totalWeight=").append(totalWeight);
        sb.append(", weightRate=").append(weightRate);
        sb.append(", count=").append(count);
        sb.append(", totalCount=").append(totalCount);
        sb.append(", countRate=").append(countRate);
        sb.append(", lossWeight=").append(lossWeight);
        sb.append(", totalLossWeight=").append(totalLossWeight);
        sb.append(", createdTime=").append(createdTime);
        sb.append(", updatedTime=").append(updatedTime);
        sb.append(", defectCnt=").append(defectCnt);
        sb.append(", defectWeightCnt=").append(defectWeightCnt);
        sb.append(", defectWeightLoss=").append(defectWeightLoss);
        sb.append(", defectYieldCnt=").append(defectYieldCnt);
        sb.append(", defectYieldLoss=").append(defectYieldLoss);
        sb.append(", defectQualityCnt=").append(defectQualityCnt);
        sb.append(", defectQualityLoss=").append(defectQualityLoss);
        sb.append(", defectWeightCntRate=").append(defectWeightCntRate);
        sb.append(", defectYieldCntRate=").append(defectYieldCntRate);
        sb.append(", defectQualityCntRate=").append(defectQualityCntRate);
        sb.append(", defectWeightLossRate=").append(defectWeightLossRate);
        sb.append(", defectYieldLossRate=").append(defectYieldLossRate);
        sb.append(", defectQualityLossRate=").append(defectQualityLossRate);
        sb.append("]");
        return sb.toString();
    }
}